// 包声明：表示这个类属于com.itheima.method包，用于组织代码结构
package com.itheima.method;

// 公共类声明：定义了一个名为MethodDemo1的公共类
public class MethodDemo1 {
    // main方法：程序的入口点
    public static void main(String[] args) {
        // 目标：掌握方法的定义和调用。
        // 调用getSum方法，传入实参10和20，将返回值赋给变量sum
        // getSum是一个计算两个整数和的方法，这里计算10+20
        int sum = getSum(10, 20);
        // 输出计算结果，使用+连接字符串和变量值
        System.out.println("和是：" + sum);

        // 输出分隔线，使结果更清晰
        System.out.println("----------------------------");

        // 再次调用getSum方法，传入不同的参数100和200
        int sum2 = getSum(100, 200);
        // 输出第二次计算的结果
        System.out.println("和是：" + sum2);

        // 调用printHelloWorld方法，这个方法没有参数也没有返回值
        // 调用后会执行方法内的打印操作
        printHelloWorld();

        // 输出分隔线
        System.out.println("----------------------------");

        // 调用getCode方法，传入参数4，获取4位验证码
        // 直接打印返回的验证码结果，不需要先赋值给变量
        System.out.println(getCode(4));
        // 调用getCode方法，传入参数5，获取5位验证码
        System.out.println(getCode(5));
    }

    // 定义一个方法，求任意两个整数的和并返回
    // public: 公共访问修饰符
    // static: 静态方法，可以通过类名直接调用
    // int: 返回值类型，表示方法会返回一个整数
    // getSum: 方法名，表示这个方法的功能是获取两个数的和
    // int a, int b: 形式参数，定义方法时需要接收两个整数参数
    public static int getSum(int a, int b) {
        // return语句：返回两个数的和，结束方法执行
        return a + b;
    }

    // 需求：打印3行HelloWorld，不需要参数，也不需要返回值
    // 注意：如果方法没有返回结果，返回值类型必须声明成void
    // 无参数，无返回值类型的方法
    // public: 公共访问修饰符
    // static: 静态方法
    // void: 返回值类型为void，表示不返回任何值
    // printHelloWorld: 方法名，描述方法的功能
    // ()内没有参数，表示调用此方法时不需要传入任何值
    public static void printHelloWorld() {
        // 三次打印HelloWorld
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
        System.out.println("HelloWorld");
    }

    // 需求3：获取一个指定位数的验证码返回
    // 有参数有返回值的方法
    // public: 公共访问修饰符
    // static: 静态方法
    // String: 返回值类型，表示方法返回一个字符串
    // getCode: 方法名，描述方法的功能是获取验证码
    // int len: 形式参数，表示需要生成的验证码位数
    public static String getCode(int len) {
        // 定义一个空字符串变量，用于存储生成的验证码
        String code = "";
        // for循环：循环len次，生成指定长度的验证码
        // i从0开始，只要i小于len就继续循环，每次循环后i自增1
        for (int i = 0; i < len; i++) {
            // 生成0-9之间的随机整数
            // Math.random()生成0.0到1.0之间的随机浮点数
            // 乘以10后范围是0.0到10.0之间
            // (int)强制转换为整数，得到0-9之间的整数
            int num = (int) (Math.random() * 10);
            // 将生成的随机数字拼接到code字符串后面
            code += num;
        }
        // 返回生成的验证码字符串
        return code;
    }
}
